/**
 * 
 * 双指针
 * 
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function (s) {
    if (!s || s.length === 1) {
        return s.length
    }
    let nextPos = new Array(128).fill(0)
    let l = 0, ans = 0
    for (let i = 0; i < s.length; i++) {
        // 确定l 的值
        l = Math.max(l, nextPos[s.charCodeAt(i)])
        // 缓存已经遍历过的位置的下一处
        nextPos[s.charCodeAt(i)] = i + 1

        // 确定 长度
        ans = Math.max(ans, i - l + 1)

    }
    nextPos = null
    return ans
};


console.log(lengthOfLongestSubstring('abcabcbb'))